table of contents
LS(1) | Narzędzia plikowe GNU 4.0l | LS(1) |
NAZWA¶
ls - listuje zawartość katalogu
SKŁADNIA¶
ls [opcja]... [plik]...
OPIS¶
Dokumentacja niniejsza nie jest już utrzymywana i może być niedokładna lub niekompletna. Autorytatywnym źródłem jest obecnie dokumentacja Texinfo. Dostęp do niej uzyskasz wpisując w wierszu poleceń:
Ta strona podręcznika man opisuje polecenie ls w wersji GNU.
dir i vdir są wersjami ls o różnych domyślnych formatach wyjściowych. Polecenia te wyświetlają informację o plikach (dowolnego typu, łącznie z katalogami). Opcje i argumenty określające pliki mogą być używane w dowolnej kolejności.
Dla nieopcyjnych argumentów wiersza poleceń określających katalogi domyślnie ls podaje zawartość katalogów, bez podkatalogów i z pominięciem plików o nazwach rozpoczynających się kropką. Dla innych argumentów, nie stanowiących opcji ls wyświetla jedynie nazwę pliku. Jeżeli nie podano innych niż opcje argumentów, to wyświetlana jest zawartość bieżącego katalogu.
Domyślnie wyniki są sortowane alfabetycznie. Jeżeli standardowym wyjściem jest terminal to wyniki wyświetlane są w szpaltach (kolumnach) posortowanych pionowo a znaki sterujące wyprowadzane są jako znaki zapytania; w innym wypadku są listowane jeden na wiersz a znaki sterujące wyprowadzane są bez zmian. W dir pliki domyślnie są wyświetlane w kolumnach, posortowanych pionowo. W vdir pliki są domyślnie listowane w długim formacie.
OPCJE¶
Ponieważ ls jest programem podstawowym, to w ciągu wielu lat zgromadził mnóstwo opcji. Opisane są one w podsekcjach grupujących opcje dotyczące różnych aspektów pracy ls. Podział ten nie jest sztywny, gdyż niektóre opcje mają wpływ na więcej niż jeden aspekt działania ls.
Jakie pliki są wyświetlane¶
Opcje te określają, dla których plików ls będzie wyświetlać informacje. Domyślnie wyświetlane są wszystkie pliki i zawartości katalogów podanych w wierszu poleceń (z wyjątkiem rozpoczynających się kropką, chyba że jawnie podano je jako argumenty).
- -a, --all
- Listuje wszystkie pliki w katalogach, również pliki zaczynające się od `.'.
- -A, --almost-all
- Listuje wszystkie pliki w katalogach, poza `.' i `..'.
- -B, --ignore-backups
- Nie pokazuje plików, które kończą się na `~', chyba że podano je w wierszu poleceń. Są to zwyczajowo pliki kopii zapasowych.
- -d, --directory
- Wypisuje tylko nazwy katalogów, tak jak innych plików, zamiast wyświetlać ich zawartość.
- -I wzorzec, --ignore=wzorzec
- Nie listuj plików, których nazwy odpowiadają wzorcowi
powłokowemu (nie wyrażeniu regularnemu) wzorzec,
chyba że podano je w wierszu poleceń. Podobnie jak w
powłoce, `.' na początku wzorca nazwy pliku nie
oznacza znaku uogólnienia. Czasami przydaje się kilkakrotne
podanie tej opcji. Na przykład:
$ ls --ignore='.??*' --ignore='.[^.]' --ignore='#*'
Pierwsza z opcji pomija nazwy o długości 3 lub więcej znaków rozpoczynające się od `.', druga pomija wszystkie dwuznakowe nazwy rozpoczynające się od `.' z wyjątkiem `..', a trzecia pomija nazwy rozpoczynające się od `#'. - -L, --dereference
- W długim formacie wyświetlania pokazuje dane (np. czasy, prawa) dotyczące plików wskazywanych przez dowiązania symboliczne, zamiast danych samych dowiązań.
- -R, --recursive
- Listuje rekurencyjnie zawartości wszystkich katalogów (czyli wyświetla również podkatalogi).
Jakie dane są wyświetlane¶
Opcje te wpływają na to, jaką informację wyświetla ls. Domyślnie pokazywane są tylko nazwy plików.
- -D, --dired
- Przy użyciu "długiego" formatu (-l) podaje
dodatkowy wiersz po wyświetleniu głównych informacji:
POCZN i KONN są liczbami całkowitymi bez znaku (unsigned integer), opisującymi pozycję w bajtach początku i końca każdej nazwy pliku w wyświetlonej liście. Ułatwia to Emacsowi odnalezienie nazw plików, nawet jeśli zawierają nietypowe znaki, jak spacje czy znaki nowej linii, bez potrzeby udziwnionego wyszukiwania.
//DIRED// POCZ1 KON1 POCZ2 KON2 ...
Na końcu podawany jest wiersz w postaci:
//SUBDIRED// POCZ1 KON1 ...
gdzie SŁOWO jest stylem cytowania (zobacz Formatowanie nazw plików).
//DIRED-OPTIONS// --quoting-style=SŁOWO
- -G, --no-group
- Nie wyświetla informacji o grupie przy długim formacie listingu katalogu. (Jest to domyślne zachowanie niektórych wersji polecenia ls innych niż wersje GNU, więc opcja ta została dodana z uwagi na zgodność.)
- -i, --inode
- Wypisuje numer indeksowy (numer i-węzła, numer seryjny) każdego pliku po lewej stronie jego nazwy. (Numer ten jednoznacznie identyfikuje plik w ramach danego systemu plików.)
- -l, --format=long, --format=verbose
- Oprócz nazwy każdego pliku, wypisuje jego typ, prawa, liczbę dowiązań twardych, właściciela, grupę, rozmiar w bajtach i timestamp (czas modyfikacji, chyba że wybrano inne czasy). Dla plików z czasem, który jest wysunięty więcej niż 6 miesięcy w przeszłość lub 1 godzinę w przyszłość, timestamp zawiera określenie roku zamiast godziny.
Prawa dostępu wyświetlane są w sposób zbliżony do specyfikacji trybu symbolicznego (zobacz `Tryby symboliczne' w podręczniku fileutils(1)). Jednakże ls w trzecim znaku każdej z grup praw łączy wiele bitów. Znaki te ustalane są według następujących reguł:
- s
- Jeżeli ustawione są bity SETUID lub SETGID oraz odpowiedni bit wykonywalności.
- S
- Jeżeli ustawione są bity SETUID lub SETGID, ale odpowiedni bit wykonywalności nie jest ustawiony.
- t
- Jeżeli równocześnie ustawione są bit lepkości (sticky bit) i bit wykonywania dla innych użytkowników.
- T
- Jeżeli ustawiony jest bit lepkości, ale nie jest ustawiony bit wykonywania dla innych użytkowników.
- x
- Bit prawa wykonywania jest ustawiony, ale nie zachodzi żadna z powyższych sytuacji.
- -
- W pozostałych przypadkach.
Po bitach uprawnień następuje pojedynczy znak określający, czy do danego pliku stosuje się alternatywna metoda dostępu. Gdy znakiem tym jest spacja, to nie ma żadnej alternatywnej metody dostępu. Jeśli jest to znak drukowalny (np. `+'), to istnieje taka metoda.
- -o
- Używa długiego formatu wyświetlania, ale nie wyświetla informacji o grupie. Równoważne użyciu opcji --format=long wraz z opcją --no-group. Opcja zapewniana w celu zgodności z innymi wersjami ls.
- -s, --size
- Dla każdego pliku wypisuje na lewo od jego nazwy
zajętość dysku przez ten plik. Jest to
wielkość przestrzeni dyskowej zużytej przez plik, co
zwykle wynosi nieco więcej niż rozmiar pliku, ale
może to być również mniej, jeśli plik
ma dziury.
Zwykle zajętość dysku drukowana jest w jednostkach 1024-bajtowych, może to być jednak zmienione. Więcej na ten temat znajdziesz w sekcji `Rozmiar bloku' podręcznika fileutils(1).
Sortowanie wyników¶
- -c, --time=ctime, --time=status
- Jeżeli używany jest długi format wyświetlania (np. -l, -o), wypisuje czas zmiany statusu (ctime i-węzła) zamiast czasu modyfikacji. Przy jawnym sortowaniu według czasu (--sort=time lub -t) lub, gdy nie jest używany długi format, sortuje zawartość katalogu według czasu zmiany statusu plików.
- -f
- Przede wszystkim, jak -U -- nie sortuje zawartości katalogów. Podaje je w takiej kolejności, w jakiej są zapisane w katalogu. Ale również włącza opcję -a (listowanie wszystkich plików) a wyłącza -l, -s, i --color (jeśli zostały podane przed -f).
- -r, --reverse
- Odwraca stosowany sposób sortowania -- tzn. podaje pliki w odwrotnej kolejności alfabetycznej, najpierw najmłodsze, najpierw najmniejsze itp., zależnie od podstawowej metody sortowania.
- -S, --sort=size
- Sortuje zawartość katalogu według rozmiaru pliku, zamiast sortowania alfabetycznego. Największe pliki wyświetlane będą na początku.
- -t, --sort=time
- Sortuje zawartość katalogów według czasu modyfikacji (mtime i-węzła), zamiast sortowania alfabetycznego. Najnowsze pliki są pierwsze.
- -u, --time=atime, --time=access, --time=use
- Jeżeli używany jest długi format wyświetlania (np. --format=long), wypisuje czas ostatniego dostępu do pliku (atime i-węzła). Przy jawnym sortowaniu według czasu (--sort=time lub -t) lub, gdy nie jest używany długi format, sortuje zawartość katalogu według czasu dostępu do plików.
- -U, --sort=none
- Nie sortuje -- pokazuje pliki w takiej kolejności, w jakiej
są zapisane w katalogu. (Nie wykonuje żadnych innych,
związanych z tym, rzeczy, jakie robi -f.) Opcja ta nie jest
nazwana -f ponieważ uniksowy ls -f
włącza -a i wyłącza -l,
-s i -t.
Wydaje się bezużytecznym i brzydkim grupowanie niezwiązanych rzeczy naraz w jednej opcji. Skoro ta opcja tego nie robi, ma inną nazwę. Szczególnie przydatna przy listowaniu obszernych katalogów, gdyż brak sortowania znacznie przyspiesza otrzymanie wyniku. - -v, --sort=version
- Sortuje według nazwy i numeru wersji, najpierw o najmniejszym numerze. Zachowuje się podobnie jak domyślne sortowanie, z wyjątkiem tego, że każda sekwencja cyfr dziesiętnych traktowana jest numerycznie jako indeks/numer wersji. (zobacz Szczegóły dotyczące sortowania wersji).
- -X, --sort=extension
- Sortuje zawartość katalogów alfabetycznie według rozszerzeń plików (znaki po ostatniej kropce). Pliki bez rozszerzenia są podawane jako pierwsze.
Szczegóły dotyczące sortowania wersji¶
Sortowanie wersji bierze pod uwagę fakt, że nazwy plików często zawierają indeksy lub numery wersji. Standardowe funkcje sortowania zwykle nie tworzą uporządkowania, jakiego się oczekuje, gdyż porównywania dokonywane są znak po znaku. Sortowanie wersji rozwiązuje ten problem i jest szczególnie przydatne przy przeglądaniu katalogów zawierających wiele plików z indeksami/numerami wersji w nazwach:
> ls -1 > ls -1v
foo.zml-1.gz foo.zml-1.gz
foo.zml-100.gz foo.zml-2.gz
foo.zml-12.gz foo.zml-6.gz
foo.zml-13.gz foo.zml-12.gz
foo.zml-2.gz foo.zml-13.gz
foo.zml-25.gz foo.zml-25.gz
foo.zml-6.gz foo.zml-100.gz
Zauważ też, że numeryczne części z początkowymi zerami są traktowane jako ułamkowe.
> ls -1 > ls -1v
abc-1.007.tgz abc-1.007.tgz
abc-1.012b.tgz abc-1.01a.tgz
abc-1.01a.tgz abc-1.012b.tgz
Ogólne formatowanie wyników¶
Poniższe opcje mają wpływ na wygląd całości wyniku.
- -1, --format=single-column
- Wypisuje po jednym pliku na wiersz. Domyślna, gdy standardowym wyjściem nie jest terminal.
- --block-size=rozmiar
- Używa bloków o wielkości rozmiar bajtów.
- -C, --format=vertical
- Listuje pliki w kolumnach, posortowanych pionowo. Sposób domyślny, gdy standardowe wyjście stanowi terminal. Zawsze domyślny dla programów dir i d. GNU ls posługuje się zmienną szerokością kolumn, by wyświetlić możliwie najwięcej plików w najmniejszej liczbie wierszy.
- --color [=kiedy
- Opcja ta decyduje, kiedy posłużyć się kolorami do rozróżnienia typów plików. Argument kiedy może być pominięty lub być jednym z poniższych:
- none, no
- Wyłącza kolory. Jest to opcja domyślna. Udostępniona w celu wyłączania poprzedniej opcji color.
- tty, auto
- Używa kolorowania nazw plików, lecz tylko, jeśli standardowym wyjściem jest terminal. Bardzo przydatne w skryptach powłoki i aliasach poleceń, szczególnie jeśli nasz ulubiony pager nie obsługuje kodów sterujących kolorami.
- yes, always
- Zawsze. Używa kolorów bez względu na rodzaj standardowego wyjścia.
Użycie opcji --color bez podania argumentu
kiedy jest równoważne --color=always.
Więcej szczegółów podano niżej w sekcji
KOLOROWY LS.
- -F, --classify, --indicator-style=classify
- Dodaje do każdej nazwy pliku znak oznaczający typ pliku. Dla plików wykonywalnych będzie to `*'. Dla katalogów `/', `@' dla dowiązań symbolicznych, `|' dla potoków FIFO, `=' dla gniazd i nic dla zwykłych plików.
- --full-time
- Podaje czasy w pełnej postaci, a nie w zwykłym heurystycznym
uproszczeniu. Format jest taki sam jak domyślny dla polecenia
date. Jego zmiana jest niemożliwa, ale można
wyciąć łańcuch opisujący datę
poleceniem cut i przesłać wynik do date -d.
Najprzydatniejsze, gdyż wyświetlany czas będzie zawierać sekundy (uniksowe systemy plikowe przechowują czasy modyfikacji/dostępu z dokładnością do najbliższej sekundy, więc opcja ta pokazuje pełną istniejącą informację). Może, na przykład, być pomocne gdy używany plik Makefile nie odbudowuje prawidłowo plików. - --indicator-style=słowo
- Do nazwy pliku dodaje znak oznaczający jego typ według stylu słowo. Możliwe style oznaczania:
- none
- Nie dodaje żadnego oznaczenia pliku; typ domyślny.
- file-type
- Dodaje `/' dla katalogów, `@' dla dowiązań symbolicznych, `|' dla potoków FIFO, `=' dla gniazd i nic dla zwykłych plików. Jest to to samo, co opcja -p lub --file-type.
- classify
- Dodaje `*' dla zwykłych plików wykonywalnych, dla pozostałych zachowuje się jak dla file-type. Jest to to samo, co opcja -F lub --classify.
- -h, --human-readable
- Pokazuje objętości w postaci czytelniejszej dla człowieka, dodając literowe przyrostki określające potęgi 1024, np. `M' dla megabajtów. `M' oznacza 1.048.576 bajtów. Jeżeli wolisz potęgi 1000 - użyj opcji -H (--si).
- -H, --si
- Podobnie jak --human-readable, ale posługuje się potęgami 1000 a nie 1024. (SI - Międzynarodowy System Miar definiuje przyrostki potęg 1000). Przy zastosowaniu tej opcji przyrostek `M' oznacza 1.000.000 bajtów. Posłuż się opcją -h (--human-readable), jeśli wolisz potęgi 1024.
- -k, --kilobytes
- Pokazuje rozmiary w blokach 1024-bajtowych (kilobajtach), przesłaniając domyślną wielkość bloku. Zobacz `Rozmiar bloku' w fileutils(1).
- -m, --format=commas
- Wypisuje pliki poziomo, w takiej ilości, jaka pomieści się w każdym wierszu, oddziela je sekwencją złożoną z przecinka i spacji (`, ').
- -n, --numeric-uid-gid
- Podaje numeryczne wartości UID i GID (identyfikatorów użytkowników i grup), zamiast nazw.
- -p, --file-type, --indicator-style=file-type
- Dodaje do każdej nazwy pliku znak wskazujący na typ pliku. Podobne do -F, z wyjątkiem tego, że nie są oznaczane pliki wykonywalne.
- -x, --format=across, --format=horizontal
- Listuje pliki wierszami zamiast kolumnami.
- -T cols, --tabsize=cols
- Przyjmuje, że tabulator ma szerokość cols kolumn. Domyślnie jest to 8. Dla efektywności, ls używa, gdzie jest to możliwe, znaków tabulacji. Zerowa wartość argumentu cols powoduje wyłączenie używania tabulacji.
- -w cols, --width=cols
- Przyjmuje, że szerokość ekranu wynosi cols kolumn. Domyślna wartość jest pobierana ze sterownika terminala (jeśli to możliwe); w przeciwnym wypadku używa się (o ile jest ustawiona) zmiennej środowiskowej COLUMNS. W pozostałych przypadkach używa się domyślnej wartości 80.
Formatowanie nazw plików¶
Poniższe opcje zmieniają sposób, w jaki wypisywane są same nazwy plików.
- -b, --escape, --quoting-style=escape
- Cytuje niegraficzne znaki w nazwach plików używając sekwencji alfabetycznych i ósemkowych z odwrotnymi ukośnikami, podobnych do używanych w języku C.
- -N, --literal
- Nie cytuje nazw plików. Pokazuje je w takiej postaci w jakiej występują.
- -q, --hide-control-chars
- Wypisuje znaki zapytania zamiast niegraficznych znaków w nazwach plików. Ustawienie domyślne gdy wyjście stanowi terminal a wywołanym programem jest ls.
- -Q, --quote-name, --quoting-style=c
- Umieszcza nazwy plików w podwójnych cudzysłowach i cytuje niegraficzne znaki jak w C.
- --quoting-style=słowo
- Używa stylu słowo do cytowania wynikowych nazw. Słowo powinno być jednym z poniższych:
- literal
- (Dosłownie). Wypisuje nazwy bez zmian, takie jakie są.
- shell
- Cytuje nazwy dla powłoki, jeśli zawierają metaznaki powłoki (znaki uogólniające) lub mogą powodować niejednoznaczność wyniku.
- shell-always
- Cytuje nazwy dla powłoki, nawet jeśli normalnie nie wymagałyby cytowania.
- c
- Cytuje nazwy jak w łańcuchu znakowym języka C. Jest to to samo, co opcja -Q lub --quote-name.
- escape
- Cytuje jak opcja c z wyjątkiem pomijania otaczających znaków podwójnego cudzysłowu. To samo, co opcja -b lub --escape.
- locale
- Cytujw jak opcja c z wyjątkiem użycia znaków cytowania właściwych do ustawień regionalnych (locale). Znakami cytowania dla domyślnych ustawień locale są ` oraz '.
Domyślną wartość opcji --quoting-style określa się za pomocą zmiennej środowiskowej QUOTING_STYLE. Jeśli nie jest ona ustawiona, to wartością domyślną jest literal. Wartość domyślna może się jednak zmienić na shell w przyszłej wersji tego pakietu.
- --show-control-chars
- Pokazuje bez zmian niegraficzne znaki w nazwach plików. Jest to ustawienie domyślne, chyba że programem jest ls, a wyjście stanowi terminal.
Inne opcje¶
KOLOROWY LS¶
Gdy używa się opcji --color, obecna wersja ls pokoloruje nazwy plików odpowiednio do nazwy i typu pliku. Domyślnie to kolorowanie zależy tylko od typu pliku, a użyte kody są zgodne z ISO 6429 (ANSI).
Można przesłonić domyślne kolory przez zdefiniowanie zmiennej środowiskowej LS_COLORS (lub LS_COLOURS). Format tej zmiennej jest podobny do formatu pliku termcap(5): oddzielona dwukropkami lista wyrażeń w formie "xx=napis", gdzie "xx" jest dwuznakową nazwą zmiennej. Zmienne wraz z towarzyszącymi im wartościami domyślnymi to:
no 0 Normalny tekst (nie nazwy pliku) fi 0 Normalny plik di 32 Katalog ln 36 Dowiązanie symboliczne pi 31 Nazwany potok (FIFO) so 33 Gniazdo bd 44;37 Urządzenie blokowe cd 44;37 Urządzenie znakowe ex 35 Plik wykonywalny mi (none) Brakujący plik (domyślnie jak fi) or (none) Osierocone dowiązanie symboliczne (domyślnie jak ln) lc \e[ Kod lewa rc m Kod prawa ec (none) Kod końca (End code) (zastępuje lc+no+rc)
Trzeba włączyć tylko te zmienne, które chcemy zmienić z wartości domyślnych.
Nazwy plików mogą być też kolorowane według rozszerzeń plików. Jest to określone w zmiennej LS_COLORS wg składni "*rozszerzenie=napis". Na przykład, używając kodów ISO 6429 pokolorujmy pliki języka C na kolor niebieski. Zrobimy to przez podanie "*.c=34". Kolor ten pokoloruje wszystkie pliki kończące się na .c na niebiesko.
Znaki kontrolne mogą być pisane zarówno w notacji w stylu C (notacja \-eskejpowa) jaki i w ^-notacji typu stty. Notacja C dodaje dla Escape \e, \_ dla normalnej spacji, a \? dla Delete. Dodatkowo, znak \ może zostać użyty do przesłaniania domyślnej interpretacji \, ^, :, =.
Każdy plik będzie wypisany jako <lc> <kod koloru> <rc> <nazwa pliku> <ec>. Jeśli kod <ec> jest niezdefiniowany, użyta zostanie sekwencja <lc> <no> <rc>. Jest to generalnie bardziej przekonujące w użyciu, lecz mniej ogólne. Kody lewo, prawo i końca są udostępniane, aby nie trzeba było ciągle wypisywać wspólnych elementów i aby obsłużyć dziwne terminale; ogólnie zwykle w ogóle nie chcemy ich zmieniać, chyba że nasz terminal nie używa sekwencji ISO 6429, a innego systemu.
Jeśli terminal korzysta z kodów kolorów ISO 6429, możemy składać rodzaje kodów (np. wszystkich poza lc, rc, i ec) z numerycznych komend oddzielonych średnikami. Najpopularniejszymi komendami są:
0 Odtwarza domyślny kolor
1 Rozjaśnia kolor
4 Podkreśla tekst
5 Miga tekstem 30 Czarny kolor 31 Czerwony kolor 32 Zielony kolor 33 Żółty (lub brązowy) kolor 34 Niebieski kolor 35 Purpurowy kolor 36 Turkusowy kolor 37 Biały (lub szary) kolor 40 Czarny kolor tła 41 Czerwony kolor tła 42 Zielony kolor tła 43 Żółty (lub brązowy) kolor tła 44 Niebieski kolor tła 45 Purpurowy kolor tła 46 Turkusowy kolor tła 47 Biały (lub szary) kolor tła
Nie wszystkie komendy będą działać na wszystkich systemach lub wyświetlaczach.
Niektóre programy terminali nie rozpoznają domyślnego kodu końca. Jeśli tekst nabiera kolorów po wylistowaniu katalogu, należy spróbować zmienić kody no i fi z 0 na numeryczne kody własnego standardowego koloru i tła.
AUTOR¶
Napisane przez Richarda Stallmana i Davida MacKenzie.
BŁĘDY¶
Na systemach BSD, dla plików zamontowanych przez NFS z systemu HP-UX, opcja -s zgłasza rozmiary, które są o połowę mniejsze od poprawnych wielkości. Na HP-UX zgłasza rozmiary dwa razy większe od poprawnych, jeśli pliki są zamontowane przez NFS z BSD. Jest to usterka HP-UX i ma wpływ również na program ls z tego systemu.
ZGŁASZANIE BŁĘDÓW¶
Błędy proszę zgłaszać, w jęz.ang., do <bug-fileutils@gnu.org>.
COPYRIGHT¶
Copyright © 1999 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE.
ZOBACZ TAKŻE¶
OD TŁUMACZA¶
Zaktualizowano i poszerzono wg dokumentacji Texinfo dla narzędzi plikowych GNU wersji 4.01.
FSF | grudzień 1999 |